﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.XPath;
using System.Xml;
using FinanSoft.Entities;
using FinanSoft.Utilities;
using System.Collections.ObjectModel;
using FinanSoft.DataLayer;

namespace FinanSoft.BusinessLayer
{
    class OpenDocumentManager
    {
        #region Atributes
    
        private OpenDocument[] _openDoc;
        private bool _isError;
        private String _errorMessage;
        #endregion

        #region Properties
        public bool IsError
        {
            get
            {
                return _isError;
            }
        }

        public String ErrorMessage
        {
            get
            {
                return _errorMessage;
            }
        }
        #endregion

        #region Singleton


        private OpenDocumentManager()
        {
            _isError = false;
            _errorMessage = "";            
        }

        /// <summary>
        /// Única instancia de esta clase
        /// </summary>
        private static OpenDocumentManager _instance;

        /// <summary>
        /// Método para implementar el patrón de Singleton
        /// </summary>
        /// <returns>Instancia única de la clase</returns>
        public static OpenDocumentManager GetInstance()
        {
            if (_instance == null)
                _instance = new OpenDocumentManager();
            return _instance;
        }
        #endregion

        #region Métodos

        /// <summary>
        /// Método que se encarga de inicializar las de Cuentas Especiales asignadas como de tipo
        /// de la cuenta especial seleccionada
        /// </summary>
        /// <returns>Retorna el objeto cuenta especial con todas cuentas de un tipo especial</returns>
        public OpenDocument[] GetOpenDoc(int idCtaAux)
        {

            if (_openDoc == null)
            {
                _isError = true;
                Console.WriteLine("error y algo mas");
                _errorMessage = Constants.ERROR_OPEN_DOCS_READING;

            }
            _openDoc = OpenDocumentDataManager.GetInstance().GetOpenDoc(idCtaAux);
            return _openDoc;
        }               

        #endregion
    }
}
